Міністерство освіти і науки України
Хмельницький національний університет
Кафедра системного програмування
Лабораторна робота №5
з програмування
на тему:
«Робота з діалоговими компонентами»
Лабораторна робота №5
Тема: Робота з діалоговими компонентами.
Мета:ознайомитись з діалоговими компонентами середовища Delphi та навчитись їх застосовувати за призначенням.
Завдання
Розробити текстовий редактор, який містить головне меню з пунктами “Файл”, “Редагування”, “Друк”, “Про програму”. Пункт меню “Файл” містить підпункти “Відкрити”, “Зберегти”, “Зберегти як”. Пункт меню “Редагування” містить підпункти “Копіювати”, “Вирізати”, “Вставити”, “Замінити”. Пункт меню “Друк” містить підпункти “Друкувати”, “Настроїти принтер”.
Project1.lpr
program project1;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, Unit1, LResources, Printer4Lazarus
{ you can add units after this };
{$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}
begin
{$I project1.lrs}
Application.Title:='Текстовий редактор';
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Unit1.pas
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, Menus, StdCtrls, PrintersDlgs;
type
{ TForm1 }
TForm1 = class(TForm)
MainMenu1: TMainMenu;
Memo1: TMemo;
MenuItem1: TMenuItem; MenuItem2: TMenuItem; MenuItem3: TMenuItem;
MenuItem4: TMenuItem; MenuItem5: TMenuItem; MenuItem6: TMenuItem;
MenuItem7: TMenuItem; MenuItem8: TMenuItem; MenuItem9: TMenuItem;
MenuItem10: TMenuItem; MenuItem11: TMenuItem;
MenuItem12: TMenuItem; MenuItem13: TMenuItem;
OpenDialog1: TOpenDialog;
PrintDialog1: TPrintDialog;
PrinterSetupDialog1: TPrinterSetupDialog;
ReplaceDialog1: TReplaceDialog;
SaveDialog1: TSaveDialog;
procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
procedure ReplaceDialog1Find(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure MenuItem3Click(Sender: TObject);
procedure MenuItem5Click(Sender: TObject);
procedure MenuItem6Click(Sender: TObject);
procedure MenuItem7Click(Sender: TObject);
procedure MenuItem8Click(Sender: TObject);
procedure MenuItem9Click(Sender: TObject);
procedure MenuItem10Click(Sender: TObject);
procedure MenuItem11Click(Sender: TObject);
procedure MenuItem12Click(Sender: TObject);
procedure MenuItem13Click(Sender: TObject);
procedure ReplaceDialog1Replace(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1; FName:string;
implementation
{ TForm1 }
procedure TForm1.MenuItem5Click(Sender: TObject); //відкрити файл
begin
if (Memo1.Modified) and (Memo1.Text<>'') then if (MessageDlg('Текстовий редактор','Зберегти перед виходом ?',mtConfirmation,[mbYes,mbNo],0)=mrYes) then MenuItem6Click(Sender);
OpenDialog1.Filter:='Text Files(*.txt)|*TXT|Office Files(*.doc)|*DOC';
if OpenDialog1.Execute then
begin Memo1.Lines.Clear;
FName:=UTF8ToSys(OpenDialog1.FileName);
Memo1.Lines.LoadFromFile(FName);
Form1.Caption:=SysToUTF8(FName);
Memo1.Modified:=False;
end;
end;
procedure TForm1.MenuItem6Click(Sender: TObject); //зберегти файл
var a:string;
begin
if (Memo1.Modified) and (Memo1.Text<>'') then begin
if FName='' then
begin SaveDialog1.Filter:='Text Files(*.txt)|*TXT|Office Files(*.doc)|*DOC';
if SaveDialog1.Execute then
begin
a:=SaveDialog1.FileName;
Memo1.Lines.SaveToFile(UTF8ToSys(a)+'.txt');
end;
end else
Memo1.Lines.SaveToFile(FName);
Memo1.Modified:=False;
end;
end;
procedure TForm1.MenuItem7Click(Sender: TObject); //зберегти як
var a:string;
begin
if Memo1.Text<>'' then begin SaveDialog1.Filter:='Text Files(*.txt)|*TXT|Office Files(*.doc)|*DOC';
if SaveDialog1.Execu...